////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  camxipeanr10.cpp
/// @brief CAMXIPEANR10 class implementation
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include "camxcdmdefs.h"
#include "camxdefs.h"
#include "camxipeanr10.h"
#include "camxiqinterface.h"
#include "camxnode.h"
#include "camxtitan17xcontext.h"
#include "camxtuningdatamanager.h"
#include "ipe_data.h"
#include "parametertuningtypes.h"

CAMX_NAMESPACE_BEGIN
static const UINT32 IPEANRDCBlend1RegCmdLength          = sizeof(IPEANRDCBlend1RegCmd) / 4;
static const UINT32 IPEANRRNFRegCmdLength               = sizeof(IPEANRRNFRegCmd) / 4;
static const UINT32 IPEANRDCUSRegCmdLength              = sizeof(IPEANRDCUSRegCmd) / 4;
static const UINT32 IPEANRCFilter2RegCmdLength          = sizeof(IPEANRCFilter2RegCmd) / 4;
static const UINT32 IPEANRDCBlend2RegCmdLength          = sizeof(IPEANRDCBlend2RegCmd) / 4;
static const UINT32 IPEANRCYLPFPreLensGainRegCmdLength  = sizeof(IPEANRCYLPFPreLensGainRegCmd) / 4;
static const UINT32 IPEANRCYLPFLensGainRegCmdLength     = sizeof(IPEANRCYLPFLensGainRegCmd) / 4;
static const UINT32 IPEANRCYLPFPostLensGainRegCmdLength = sizeof(IPEANRCYLPFPostLensGainRegCmd) / 4;
static const UINT32 IPEANRCNRRegCmdLength               = sizeof(IPEANRCNRRegCmd) / 4;
static const UINT32 IPEANRNumRegWriteCmds               = 9;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::Create
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::Create(
    IPEModuleCreateData* pCreateData)
{
    CamxResult result = CamxResultSuccess;

    if (NULL != pCreateData)
    {
        pCreateData->pModule = CAMX_NEW IPEANR10(pCreateData);

        if (NULL == pCreateData->pModule)
        {
            result = CamxResultENoMemory;
            CAMX_ASSERT_ALWAYS_MESSAGE("Memory allocation failed");
        }
        else
        {
            result = pCreateData->pModule->Initialize();
        }
    }
    else
    {
        result = CamxResultEInvalidArg;
        CAMX_LOG_ERROR(CamxLogGroupPProc, "Null input pointer");
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::Initialize
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::Initialize()
{
    CamxResult result = CamxResultSuccess;

    result = AllocateCommonLibraryData();
    if (result != CamxResultSuccess)
    {
        CAMX_LOG_ERROR(CamxLogGroupPProc, "Unable to initilize common library data, no memory");
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::UpdateIPEInternalData
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::UpdateIPEInternalData(
    const ISPInputData* pInputData)
{
    CamxResult      result = CamxResultSuccess;
    IpeIQSettings*  pIPEIQSettings = static_cast<IpeIQSettings*>(pInputData->pipelineIPEData.pIPEIQSettings);
    AnrParameters*  pAnrParameters = &pIPEIQSettings->anrParameters;

    // Run NClib common IQ calculations.
    if ((TRUE == m_enableCommonIQ) &&
        (TRUE == m_moduleEnable))
    {
        Utils::Memcpy(pAnrParameters, &m_ANRParameter, sizeof(m_ANRParameter));
    }
    else
    {
        // Using Default settings
        pIPEIQSettings->anrParameters.parameters[PASS_NAME_FULL].moduleCfg.EN  = m_moduleEnable;
        pIPEIQSettings->anrParameters.parameters[PASS_NAME_DC_4].moduleCfg.EN  = m_moduleEnable;
        pIPEIQSettings->anrParameters.parameters[PASS_NAME_DC_16].moduleCfg.EN = m_moduleEnable;
        // Hardcoded settings only has values for 3 passes
        pIPEIQSettings->anrParameters.parameters[PASS_NAME_DC_64].moduleCfg.EN = 0;
    }

    CAMX_LOG_VERBOSE(CamxLogGroupIQMod, " enable  Module enable on pass full - 64 : %d, %d, %d, %d",
                     pIPEIQSettings->anrParameters.parameters[PASS_NAME_FULL].moduleCfg.EN,
                     pIPEIQSettings->anrParameters.parameters[PASS_NAME_DC_4].moduleCfg.EN,
                     pIPEIQSettings->anrParameters.parameters[PASS_NAME_DC_16].moduleCfg.EN,
                     pIPEIQSettings->anrParameters.parameters[PASS_NAME_DC_64].moduleCfg.EN);

    // Post tuning metadata if setting is enabled
    if (NULL != pInputData->pIPETuningMetadata)
    {
        CAMX_STATIC_ASSERT((sizeof(IPEANRRegCmd) * PASS_NAME_MAX) <=
                           sizeof(pInputData->pIPETuningMetadata->IPEANRData.ANRData));
        CAMX_STATIC_ASSERT(MAX_FACE_NUM <= TuningMaxFaceNumber);

        for (UINT passNumber = PASS_NAME_FULL; passNumber < PASS_NAME_MAX; passNumber++)
        {
            Utils::Memcpy(&pInputData->pIPETuningMetadata->IPEANRData.ANRData[passNumber],
                          &m_regCmd[passNumber],
                          sizeof(IPEANRRegCmd));
        }

        TuningFaceData* pANRFaceDetection = &pInputData->pIPETuningMetadata->IPEANRFaceDetection;

        pANRFaceDetection->numberOfFace = ((pInputData->fDData.numberOfFace) > MAX_FACE_NUM) ?
            MAX_FACE_NUM : (pInputData->fDData.numberOfFace);

        for (UINT32 count = 0; count < m_dependenceData.pFDData->numberOfFace; count++)
        {
            pANRFaceDetection->faceCenterX[count] = pInputData->fDData.faceCenterX[count];
            pANRFaceDetection->faceCenterY[count] = pInputData->fDData.faceCenterY[count];
            pANRFaceDetection->faceRadius[count]  = pInputData->fDData.faceRadius[count];
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::CreateCmdList
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::CreateCmdList(
    const ISPInputData* pInputData)
{
    /// @todo (CAMX-729) Implement IQ block and hook up with Common library
    /// @todo (CAMX-735) Link IQ module with Chromatix adapter
    CamxResult result     = CamxResultSuccess;
    CmdBuffer* pCmdBuffer = pInputData->pipelineIPEData.ppIPECmdBuffer[CmdBufferNPS];

    CAMX_ASSERT(NULL != pCmdBuffer);

    for (UINT passNumber = PASS_NAME_FULL ; passNumber < PASS_NAME_MAX; passNumber++)
    {
        m_offsetPass[passNumber] = (pCmdBuffer->GetResourceUsedDwords() * RegisterWidthInBytes);
        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_DCBLEND1_BYPASS,
                                              IPEANRDCBlend1RegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].dcBlend1Cmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_RNF_BYPASS,
                                              IPEANRRNFRegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].rnfCmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_DCUS_BYPASS,
                                              IPEANRDCUSRegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].dcusCmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_CYLPF_FILTER2_BYPASS,
                                              IPEANRCFilter2RegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].filter2Cmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_DCBLEND2_BYPASS_LUMA,
                                              IPEANRDCBlend2RegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].dcBlend2Cmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_CYLPF_BYPASS,
                                              IPEANRCYLPFPreLensGainRegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].cylpfPreLensGainCmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_CYLPF_LG_YFILTER_LUT_THR_Y_0,
                                              IPEANRCYLPFLensGainRegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].cylpfLensGainCmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_CYLPF_YFILTER_UVLIMIT,
                                              IPEANRCYLPFPostLensGainRegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].cylpfPostLensGainCmd));
        CAMX_ASSERT(CamxResultSuccess == result);

        result = PacketBuilder::WriteRegRange(pCmdBuffer,
                                              regIPE_IPE_0_NPS_CLC_ANR_CNR_BYPASS,
                                              IPEANRCNRRegCmdLength,
                                              reinterpret_cast<UINT32*>(&m_regCmd[passNumber].cnrCmd));
        CAMX_ASSERT(CamxResultSuccess == result);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::ValidateDependenceParams
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::ValidateDependenceParams(
    const ISPInputData* pInputData)
{
    CamxResult result = CamxResultSuccess;

    /// @todo (CAMX-730) validate dependency parameters
    CAMX_LOG_VERBOSE(CamxLogGroupPProc, "IQSettingsPtr [0x%p] ", pInputData->pipelineIPEData.pIPEIQSettings);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::DumpRegConfig
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
VOID IPEANR10::DumpRegConfig() const
{
    CAMX_LOG_VERBOSE(CamxLogGroupPProc, "DumpRegConfig ");
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::GetRegCmd
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
VOID* IPEANR10::GetRegCmd()
{
    /// @todo (CAMX-729) Implement IQ block and hook up with Common library
    return &m_regCmd;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::CheckDependenceChange
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL IPEANR10::CheckDependenceChange(
    ISPInputData* pInputData)
{

    BOOL isChanged = FALSE;

    if ((NULL != pInputData)                  &&
        (NULL != pInputData->pAECUpdateData)  &&
        (NULL != pInputData->pAWBUpdateData)  &&
        (NULL != pInputData->pHwContext))
    {
        if (NULL != pInputData->pOEMIQSetting)
        {
            m_moduleEnable = (static_cast<OEMIPEIQSetting*>(pInputData->pOEMIQSetting))->ANR10Enable;

            isChanged      = (TRUE == m_moduleEnable);
        }
        else
        {
            if (NULL != pInputData->pTuningData)
            {
                TuningDataManager* pTuningManager = pInputData->pTuningDataManager;
                CAMX_ASSERT(NULL != pTuningManager);

                // Search through the tuning data (tree), only when there
                // are changes to the tuning mode data as an optimization
                if ((TRUE == pInputData->tuningModeChanged)    &&
                    (TRUE == pTuningManager->IsValidChromatix()))
                {
                    m_pChromatix = pTuningManager->GetChromatix()->GetModule_anr10_ipe(
                                       reinterpret_cast<TuningMode*>(&pInputData->pTuningData->TuningMode[0]),
                                       pInputData->pTuningData->noOfSelectionParameter);
                }

                CAMX_ASSERT(NULL != m_pChromatix);
                if (NULL != m_pChromatix)
                {
                    if (m_pChromatix != m_dependenceData.pChromatix)
                    {
                        CAMX_LOG_VERBOSE(CamxLogGroupPProc, "updating chromatix pointer");
                        m_dependenceData.pChromatix = m_pChromatix;
                        m_moduleEnable              = ((TRUE == m_pChromatix->enable_section.enable_chroma_noise_reduction) ||
                            (TRUE == m_pChromatix->enable_section.enable_luma_noise_reduction)) ? 1 : 0;

                        isChanged = (TRUE == m_moduleEnable);
                    }
                }
                else
                {
                    CAMX_LOG_ERROR(CamxLogGroupPProc, "Failed to get Chromatix");
                }
            }
            else
            {
                CAMX_LOG_ERROR(CamxLogGroupPProc, "Null Tuning Pointer");
            }
        }

        if (TRUE == m_moduleEnable)
        {
            if (TRUE ==
                IQInterface::s_interpolationTable.ANR10TriggerUpdate(&pInputData->triggerData, &m_dependenceData))
            {
                isChanged = TRUE;
            }

            m_dependenceData.frameNum = pInputData->frameNum;
            m_dependenceData.bitWidth =
                ImageFormatUtils::Is10BitFormat(pInputData->pipelineIPEData.fullInputFormat) ? 10 : 8;

            // Update face information / optical center info
            m_dependenceData.numPasses             = pInputData->pipelineIPEData.numPasses;
            m_dependenceData.opticalCenterX        = pInputData->opticalCenterX;
            m_dependenceData.opticalCenterY        = pInputData->opticalCenterY;
            m_dependenceData.pWarpGeometriesOutput = pInputData->pipelineIPEData.pWarpGeometryData;
            m_dependenceData.pImageDimensions      = &pInputData->pipelineIPEData.inputDimension;
            m_dependenceData.pMarginDimensions     = &pInputData->pipelineIPEData.marginDimension;
            m_dependenceData.pANRParameters        = &m_ANRParameter;
            m_dependenceData.pFDData               = &pInputData->fDData;

            CAMX_LOG_VERBOSE(CamxLogGroupIQMod,
                             " gain %f, lux %f, frame %d  bit %d w %d, h %d mw %d, mh %d",
                             m_dependenceData.luxIndex, m_dependenceData.AECGain, m_dependenceData.frameNum,
                             m_dependenceData.bitWidth, m_dependenceData.pImageDimensions->widthPixels,
                             m_dependenceData.pImageDimensions->heightLines,
                             m_dependenceData.pMarginDimensions->widthPixels,
                             m_dependenceData.pMarginDimensions->heightLines);
        }
        else
        {
            CAMX_LOG_VERBOSE(CamxLogGroupPProc, "ANR10 Module is not enabled");
        }
    }
    else
    {
        if (NULL != pInputData)
        {
            CAMX_LOG_ERROR(CamxLogGroupPProc,
                           "Invalid Input: pNewAECUpdate %p pNewAWBUpdate %p pHwContext %p",
                           pInputData->pAECUpdateData,
                           pInputData->pAWBUpdateData,
                           pInputData->pHwContext);
        }
        else
        {
            CAMX_LOG_ERROR(CamxLogGroupPProc, "Null Input Pointer");
        }
    }

    return isChanged;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::RunCalculation
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::RunCalculation(
    ISPInputData* pInputData)
{
    CamxResult      result     = CamxResultSuccess;
    ANR10OutputData outputData = { NULL, 0 };

    CAMX_LOG_VERBOSE(CamxLogGroupPProc, "Number of Passes [0x%d] enable common IQ %d",
        m_dependenceData.numPasses, m_enableCommonIQ);

    if (TRUE == m_enableCommonIQ)
    {
        outputData.pRegCmd   = &m_regCmd[0];
        outputData.numPasses = m_dependenceData.numPasses;

        // running calculation
        result = IQInterface::IPEANR10CalculateSetting(&m_dependenceData, pInputData->pOEMIQSetting, &outputData);
        if (CamxResultSuccess != result)
        {
            CAMX_LOG_ERROR(CamxLogGroupPProc, "IPE ANR10 Calculation Failed.");
        }
    }
    else
    {
        RunCalculationFullPass(pInputData);
        RunCalculationDS4Pass(pInputData);
        RunCalculationDS16Pass(pInputData);
    }

    /// @todo (CAMX-666) replace #if DEBUG with set properties
#if DEBUG
    DumpRegConfig();
#endif // DEBUG

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::RunCalculationFullPass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::RunCalculationFullPass(
    ISPInputData* pInputData)
{
    CAMX_UNREFERENCED_PARAM(pInputData);
    CamxResult result = CamxResultSuccess;

    /// @todo (CAMX-729) Consume 3A updates and call common IQ library
    m_regCmd[PASS_NAME_FULL].dcBlend1Cmd.bypass.u32All = 0x00000000;

    m_regCmd[PASS_NAME_FULL].rnfCmd.bypass.u32All               = 0x00000003;
    m_regCmd[PASS_NAME_FULL].rnfCmd.subBypass.u32All            = 0x00000024;
    m_regCmd[PASS_NAME_FULL].rnfCmd.debug.u32All                = 0x00000000;
    m_regCmd[PASS_NAME_FULL].rnfCmd.indRankConfigYCFG.u32All    = 0x00005128;
    m_regCmd[PASS_NAME_FULL].rnfCmd.indRankYHV.u32All           = 0x0002f002;
    m_regCmd[PASS_NAME_FULL].rnfCmd.indRankYDG.u32All           = 0x0002f002;
    m_regCmd[PASS_NAME_FULL].rnfCmd.indRankCCFG.u32All          = 0x00002894;
    m_regCmd[PASS_NAME_FULL].rnfCmd.indRankCHV.u32All           = 0x00000382;
    m_regCmd[PASS_NAME_FULL].rnfCmd.indRankCDG.u32All           = 0x00000382;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakConfigY.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakConfigc.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakImgCondS0Y.u32All       = 0x00ff0002;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakImgCondS1Y.u32All       = 0x000000ff;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakImgCondS0C.u32All       = 0x00ff000a;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakImgCondS1C.u32All       = 0x000000ff;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakDCCondS0Y.u32All        = 0x00d43d42;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakDCCondS1Y.u32All        = 0x00d44d44;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakDCCondS0C.u32All        = 0x000021c2;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakDCCondS1C.u32All        = 0x00002244;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakLumaIsoThr.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].rnfCmd.peakChromaIsoThr.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firConfigY.u32All           = 0x00000020;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firConfigC.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firDirThrY.u32All           = 0x00a495d4;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firDirThrC.u32All           = 0x0004ddd2;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransY0.u32All           = 0x4920a09a;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransY1.u32All           = 0x00024d05;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransY2.u32All           = 0x6a625105;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransC0.u32All           = 0x1d0c408a;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransC1.u32All           = 0x0000ec62;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransC2.u32All           = 0x2a20f062;
    m_regCmd[PASS_NAME_FULL].rnfCmd.firTransC3.u32All           = 0x0003401a;

    m_regCmd[PASS_NAME_FULL].dcusCmd.bypass.u32All = 0x00000000;

    m_regCmd[PASS_NAME_FULL].filter2Cmd.byPass.u32All           = 0x00000001;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.debug.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.subBypass.u32All        = 0x00000018;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.chromaFiltering.u32All  = 0x00000006;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.chromaIndThr9.u32All    = 0x00000006;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.chromaIndThr11.u32All   = 0x00000006;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.greyIndThr9.u32All      = 0x00000015;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.greyIndThr11.u32All     = 0x0000002a;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.chroma.u32All           = 0x00000006;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.medianThr.u32All        = 0x000726dd;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.medianThrHV.u32All      = 0x00146449;
    m_regCmd[PASS_NAME_FULL].filter2Cmd.medianThrDG12.u32All    = 0x00148449;

    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.lumaBypass.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.chromaBypass.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yDebug.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cDebug.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.lumaConfig.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.chromaConfig.u32All    = 0x0000004f;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend1X1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend3X3.u32All       = 0x09090909;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend5X5.u32All       = 0x1b1b1b1b;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend7X7.u32All       = 0x36363636;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend9X9.u32All       = 0x5a5a5a5a;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend1X1Alt.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend3X3Alt.u32All    = 0x19191919;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend5X5Alt.u32All    = 0x40404040;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend7X7Alt.u32All    = 0x66666666;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.yBlend9X9Alt.u32All    = 0x80808080;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cBlend1X1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cBlend3X3.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cBlend5X5.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cBlend7X7.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cBlend9X9.u32All       = 0x00005555;
    m_regCmd[PASS_NAME_FULL].dcBlend2Cmd.cblend11X11.u32All     = 0x00008080;

    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.bypass.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.subBypass.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.debug.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.config.u32All          = 0x00004004;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfConfig.u32All       = 0x0000000c;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfRadius.u32All       = 0x00001168;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfLowThrLUT0.u32All   = 0x00a01402;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfLowThrLUT1.u32All   = 0x0190500f;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfLowThrLUT2.u32All   = 0x02808c1e;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfHighThrLUT0.u32All  = 0x06e1a466;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfHighThrLUT1.u32All  = 0x07d1e073;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfHighThrLUT2.u32All  = 0x08c21c82;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfLowThrLimit.u32All  = 0x000003ff;
    m_regCmd[PASS_NAME_FULL].cylpfPreLensGainCmd.tcfHighThrLimit.u32All = 0x000003ff;

    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY0.u32All  = 0x00850083;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY1.u32All  = 0x008b0087;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY2.u32All  = 0x0091008e;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY3.u32All  = 0x00980094;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY4.u32All  = 0x00a0009c;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY5.u32All  = 0x00a900a4;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY6.u32All  = 0x00b400ae;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY7.u32All  = 0x00be00b9;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrY8.u32All  = 0x000000c1;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC1.u32All  = 0x0095008f;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC2.u32All  = 0x00a4009d;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC3.u32All  = 0x00b300ab;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC4.u32All  = 0x00c300bb;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC5.u32All  = 0x00d500cc;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC6.u32All  = 0x00ea00df;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC7.u32All  = 0x00fb00f4;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgYFilterLUTThrC8.u32All  = 0x00000101;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY1.u32All  = 0x0095008f;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY2.u32All  = 0x00a4009d;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY3.u32All  = 0x00b300ab;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY4.u32All  = 0x00c300bb;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY5.u32All  = 0x00d500cc;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY6.u32All  = 0x00ea00df;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY7.u32All  = 0x00fb00f4;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrY8.u32All  = 0x00000101;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC1.u32All  = 0x0095008f;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC2.u32All  = 0x00a4009d;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC3.u32All  = 0x00b300ab;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC4.u32All  = 0x00c300bb;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC5.u32All  = 0x00d500cc;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC6.u32All  = 0x00ea00df;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC7.u32All  = 0x00fb00f4;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgCFilterLUTThrC8.u32All  = 0x00000101;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend0.u32All        = 0x7e7e7f80;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend1.u32All        = 0x7a7b7c7d;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend2.u32All        = 0x75767879;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend3.u32All        = 0x71737475;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend4.u32All        = 0x6e6f7071;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend5.u32All        = 0x6b6c6d6d;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend6.u32All        = 0x68696a6a;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend7.u32All        = 0x67676868;
    m_regCmd[PASS_NAME_FULL].cylpfLensGainCmd.lgLUTBlend8.u32All        = 0x00000067;

    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUVLmit.u32All                  = 0x0000007f;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterBaseBlendFarY.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterBaseBlendFarC.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYYTB0.u32All                   = 0x02c0941e;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYYTB1.u32All                   = 0x0330cc32;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYYTB2.u32All                   = 0x0340e038;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYYTB3.u32All                   = 0x0330cc33;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYYTB4.u32All                   = 0x0330cc33;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYYTB5.u32All                   = 0x00009c31;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYCTB3.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYTBLimit.u32All                = 0x000003ff;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUYTB0.u32All                   = 0x08080706;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUYTB1.u32All                   = 0x08080808;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUYTB2.u32All                   = 0x08080808;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUYTB3.u32All                   = 0x07070808;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUYTB4.u32All                   = 0x00000006;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVYTB0.u32All                   = 0x08080706;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVYTB1.u32All                   = 0x08080808;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVYTB2.u32All                   = 0x08080808;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVYTB3.u32All                   = 0x07080808;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVYTB4.u32All                   = 0x00000007;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUVLimit.u32All                 = 0x0000007f;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterBaseBlendFarY.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterBaseBlendFarC.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYYTB0.u32All                   = 0x01f0781d;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYYTB1.u32All                   = 0x01605c1f;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYYTB2.u32All                   = 0x0200b02a;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYYTB3.u32All                   = 0x01f0741c;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYYTB4.u32All                   = 0x02308c22;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYYTB5.u32All                   = 0x00008023;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYCTB3.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYTBLimit.u32All                = 0x000003ff;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUYTB0.u32All                   = 0x05050506;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUYTB1.u32All                   = 0x05050303;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUYTB2.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUYTB3.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUYTB4.u32All                   = 0x00000004;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVYTB0.u32All                   = 0x05050506;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVYTB1.u32All                   = 0x05050303;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVYTB2.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVYTB3.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVYTB4.u32All                   = 0x00000004;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterConfig.u32All                  = 0x00014014;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterKernel.u32All                  = 0x000ad4da;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterAltKernel.u32All               = 0x780000db;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterDCIndFlags.u32All              = 0x00934f3e;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterDerFlags.u32All                = 0x00934f3e;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterDer2Flags.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterDirConfig.u32All               = 0xffff0000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterExternalDirConfig.u32All       = 0x0000ff00;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYThrehClose3Mod.u32All         = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYThreshDer2Close3Mod.u32All    = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYThrFarMod.u32All              = 0x0000000c;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYThrCloseMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterYThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterUThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yFilterVThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndYGain30.u32All                  = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndYGain50.u32All                  = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndYGain70.u32All                  = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndYGain90.u32All                  = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndYGain5X0.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndYGain9X0.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndUVGain30.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndUVGain50.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.yDCIndUVGain5X0.u32All                = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterConfig.u32All                  = 0x00048383;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterDetailCond.u32All              = 0x00001e3c;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cThreshold.u32All                     = 0x00000033;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyYDer.u32All                = 0x000f003c;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyChromaticity.u32All        = 0x00521f60;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyLimits.u32All              = 0x00000040;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyBlendScale.u32All          = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyBlendOffset.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreySizeThr35.u32All           = 0x001b1e1e;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreySizeThr79.u32All           = 0x00000048;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyThrClose.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterGreyThrFar.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterDCIndFlags.u32All              = 0x00004f3e;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterDerFlags.u32All                = 0x00004f3e;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterDirConfig.u32All               = 0xffff0000;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterDirConfigEx.u32All             = 0x0000ff00;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYThrFarMod.u32All              = 0x000000c9;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUThrDistMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVThrDisMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYThrCloseMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterYThrFarExMod.u32All            = 0x00000008;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterUThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cFilterVThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndYGain30.u32All                  = 0x002ed12a;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndYGain50.u32All                  = 0x002ed12a;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndYGain70.u32All                  = 0x00084aaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndYGain90.u32All                  = 0x00084aaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndYGain5X0.u32All                 = 0x002ed12a;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndYGain9X0.u32All                 = 0x00084aaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndUVGain30.u32All                 = 0x002ed12a;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndUVGain50.u32All                 = 0x002ed12a;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndUVGain70.u32All                 = 0x00084aaa;
    m_regCmd[PASS_NAME_FULL].cylpfPostLensGainCmd.cDCIndUVGain5X0.u32All                = 0x002ed12a;

    m_regCmd[PASS_NAME_FULL].cnrCmd.bypass.u32All               = 0x00000001;
    m_regCmd[PASS_NAME_FULL].cnrCmd.config.u32All               = 0x00000027;
    m_regCmd[PASS_NAME_FULL].cnrCmd.debug.u32All                = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.filterMode.u32All           = 0x0000000f;
    m_regCmd[PASS_NAME_FULL].cnrCmd.specialParams.u32All        = 0x00700001;
    m_regCmd[PASS_NAME_FULL].cnrCmd.cMode.u32All                = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleMin0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleMin1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleMin2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleMax0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleMax1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleMax2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.angleInternal.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.colorSatMin0.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.colorSatMin1.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.colorSatMin2.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.colorSatMax0.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.colorSatMax1.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.colorSatMax2.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCompMin0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCompMin1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCompMax0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCompMax1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.boundaryProbability.u32All  = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.q0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.q1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorYY0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorYY1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorYY2.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorUVY0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorUVY1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorUVY2.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetYY0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetYY1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetYY2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetUY0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetUY1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetVY0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetVY1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorYC0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorYC1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorYC2.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorUVC0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorUVC1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.gainFactorUVC2.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetYC0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetYC1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetYC2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetUC0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetUC1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetVC0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.offsetVC1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.blendFactorYDC0.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.blendFactorYDC1.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.blendFactorYALT0.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.blendFactorYALT1.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.blendFactorC0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.blendFactorC1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.fdOffset.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.xCenter0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.xCenter1.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.xCenter2.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCenter0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCenter1.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.yCenter2.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rBoundary0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rBoundary1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rBoundary2.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rBoundaryShift0.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rSlope0.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rSlope1.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rSlope2.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.rSlopeShift0.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.combine0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_FULL].cnrCmd.fdConfig.u32All             = 0x0000000a;

    /// @todo (CAMX-666) replace #if DEBUG with set properties
#if DEBUG
    DumpRegConfig();
#endif // DEBUG

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::RunCalculationDS4Pass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::RunCalculationDS4Pass(
    ISPInputData* pInputData)
{
    CAMX_UNREFERENCED_PARAM(pInputData);
    CamxResult result = CamxResultSuccess;

    /// @todo (CAMX-729) Consume 3A updates and call common IQ library

    m_regCmd[PASS_NAME_DC_4].dcBlend1Cmd.bypass.u32All = 0x00000000;

    m_regCmd[PASS_NAME_DC_4].rnfCmd.bypass.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.subBypass.u32All            = 0x00000009;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.debug.u32All                = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.indRankConfigYCFG.u32All    = 0x0000412b;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.indRankYHV.u32All           = 0x0002f866;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.indRankYDG.u32All           = 0x0002fa66;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.indRankCCFG.u32All          = 0x00001093;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.indRankCHV.u32All           = 0x000003c3;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.indRankCDG.u32All           = 0x000003c3;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakConfigY.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakConfigc.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakImgCondS0Y.u32All       = 0x00ff00ff;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakImgCondS1Y.u32All       = 0x0020ff00;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakImgCondS0C.u32All       = 0x00ff00ff;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakImgCondS1C.u32All       = 0x0020ff00;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakDCCondS0Y.u32All        = 0x00bc2bc2;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakDCCondS1Y.u32All        = 0x00c44c43;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakDCCondS0C.u32All        = 0x00002142;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakDCCondS1C.u32All        = 0x00002243;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakLumaIsoThr.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.peakChromaIsoThr.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firConfigY.u32All           = 0x00000020;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firConfigC.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firDirThrY.u32All           = 0x00a495d4;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firDirThrC.u32All           = 0x0004c8c6;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransY0.u32All           = 0x4920a09a;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransY1.u32All           = 0x00024d05;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransY2.u32All           = 0x6a625105;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransC0.u32All           = 0x1d0c408a;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransC1.u32All           = 0x0000ec62;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransC2.u32All           = 0x2a20f062;
    m_regCmd[PASS_NAME_DC_4].rnfCmd.firTransC3.u32All           = 0x0003401a;

    m_regCmd[PASS_NAME_DC_4].dcusCmd.bypass.u32All = 0x00000000;

    m_regCmd[PASS_NAME_DC_4].filter2Cmd.byPass.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.debug.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.subBypass.u32All        = 0x0000001c;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.chromaFiltering.u32All  = 0x00000006;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.chromaIndThr9.u32All    = 0x00000006;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.chromaIndThr11.u32All   = 0x00000006;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.greyIndThr9.u32All      = 0x00000014;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.greyIndThr11.u32All     = 0x00000014;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.chroma.u32All           = 0x00000006;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.medianThr.u32All        = 0x0002924c;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.medianThrHV.u32All      = 0x000a3225;
    m_regCmd[PASS_NAME_DC_4].filter2Cmd.medianThrDG12.u32All    = 0x000a4225;

    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.lumaBypass.u32All      = 0x00000000;
    // Temporarily disable
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.chromaBypass.u32All    = 0x00000001;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yDebug.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cDebug.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.lumaConfig.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.chromaConfig.u32All    = 0x00000048;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend1X1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend3X3.u32All       = 0x0d0d0d0d;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend5X5.u32All       = 0x26262626;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend7X7.u32All       = 0x4d4d4d4d;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend9X9.u32All       = 0x80808080;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend1X1Alt.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend3X3Alt.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend5X5Alt.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend7X7Alt.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.yBlend9X9Alt.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cBlend1X1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cBlend3X3.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cBlend5X5.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cBlend7X7.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cBlend9X9.u32All       = 0x00005555;
    m_regCmd[PASS_NAME_DC_4].dcBlend2Cmd.cblend11X11.u32All     = 0x00008080;

    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.bypass.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.subBypass.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.debug.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.config.u32All          = 0x00004004;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfConfig.u32All       = 0x0000000c;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfRadius.u32All       = 0x00001168;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfLowThrLUT0.u32All   = 0x00a01402;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfLowThrLUT1.u32All   = 0x0190500f;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfLowThrLUT2.u32All   = 0x02808c1e;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfHighThrLUT0.u32All  = 0x06e1a466;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfHighThrLUT1.u32All  = 0x07d1e073;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfHighThrLUT2.u32All  = 0x08c21c82;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfLowThrLimit.u32All  = 0x000003ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPreLensGainCmd.tcfHighThrLimit.u32All = 0x000003ff;

    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY1.u32All  = 0x0094008e;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY2.u32All  = 0x009e0099;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY3.u32All  = 0x00a900a4;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY4.u32All  = 0x00b600af;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY5.u32All  = 0x00c500bd;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY6.u32All  = 0x00d900ce;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY7.u32All  = 0x00e900e2;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrY8.u32All  = 0x000000f0;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC1.u32All  = 0x0095008f;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC2.u32All  = 0x00a4009d;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC3.u32All  = 0x00b300ab;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC4.u32All  = 0x00c300bb;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC5.u32All  = 0x00d500cc;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC6.u32All  = 0x00ea00df;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC7.u32All  = 0x00fb00f4;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgYFilterLUTThrC8.u32All  = 0x00000101;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY1.u32All  = 0x0095008f;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY2.u32All  = 0x00a4009d;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY3.u32All  = 0x00b300ab;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY4.u32All  = 0x00c300bb;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY5.u32All  = 0x00d500cc;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY6.u32All  = 0x00ea00df;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY7.u32All  = 0x00fb00f4;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrY8.u32All  = 0x00000101;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC0.u32All  = 0x00890085;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC1.u32All  = 0x0095008f;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC2.u32All  = 0x00a4009d;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC3.u32All  = 0x00b300ab;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC4.u32All  = 0x00c300bb;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC5.u32All  = 0x00d500cc;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC6.u32All  = 0x00ea00df;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC7.u32All  = 0x00fb00f4;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgCFilterLUTThrC8.u32All  = 0x00000101;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend0.u32All        = 0x7e7e7f80;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend1.u32All        = 0x7a7b7c7d;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend2.u32All        = 0x75767879;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend3.u32All        = 0x71737475;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend4.u32All        = 0x6e6f7071;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend5.u32All        = 0x6b6c6d6d;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend6.u32All        = 0x68696a6a;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend7.u32All        = 0x67676868;
    m_regCmd[PASS_NAME_DC_4].cylpfLensGainCmd.lgLUTBlend8.u32All        = 0x00000067;

    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUVLmit.u32All                  = 0x0000007f;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterBaseBlendFarY.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterBaseBlendFarC.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYYTB0.u32All                   = 0x00e03006;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYYTB1.u32All                   = 0x00e0380e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYYTB2.u32All                   = 0x00e04010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYYTB3.u32All                   = 0x00e0380e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYYTB4.u32All                   = 0x0100400e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYYTB5.u32All                   = 0x0000280e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYCTB3.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYTBLimit.u32All                = 0x000003ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUYTB0.u32All                   = 0x05050403;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUYTB1.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUYTB2.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUYTB3.u32All                   = 0x04050505;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUYTB4.u32All                   = 0x00000003;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVYTB0.u32All                   = 0x05050403;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVYTB1.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVYTB2.u32All                   = 0x05050505;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVYTB3.u32All                   = 0x04050505;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVYTB4.u32All                   = 0x00000003;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUVLimit.u32All                 = 0x0000007f;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterBaseBlendFarY.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterBaseBlendFarC.u32All           = 0x00000004;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYYTB0.u32All                   = 0x00c02407;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYYTB1.u32All                   = 0x00c0240a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYYTB2.u32All                   = 0x00a0300e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYYTB3.u32All                   = 0x00a02409;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYYTB4.u32All                   = 0x0100380e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYYTB5.u32All                   = 0x00002c0d;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYCTB3.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYTBLimit.u32All                = 0x000003ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUYTB0.u32All                   = 0x04040302;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUYTB1.u32All                   = 0x04040404;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUYTB2.u32All                   = 0x04040404;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUYTB3.u32All                   = 0x03040404;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUYTB4.u32All                   = 0x00000002;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVYTB0.u32All                   = 0x04040403;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVYTB1.u32All                   = 0x04040404;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVYTB2.u32All                   = 0x04040404;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVYTB3.u32All                   = 0x04040404;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVYTB4.u32All                   = 0x00000002;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVCTB0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVCTB1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVCTB2.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVTBLimit.u32All                = 0x000000ff;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterConfig.u32All                  = 0x0000800c;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterKernel.u32All                  = 0x02355490;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterAltKernel.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterDCIndFlags.u32All              = 0x00934f3e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterDerFlags.u32All                = 0x00934f3e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterDer2Flags.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterDirConfig.u32All               = 0xffff0000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterExternalDirConfig.u32All       = 0x0000ff00;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYThrehClose3Mod.u32All         = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYThreshDer2Close3Mod.u32All    = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYThrFarMod.u32All              = 0x0001ffd0;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYThrCloseMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterYThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterUThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yFilterVThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndYGain30.u32All                  = 0x0c34316a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndYGain50.u32All                  = 0x0c34316a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndYGain70.u32All                  = 0x030c5aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndYGain90.u32All                  = 0x030c5aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndYGain5X0.u32All                 = 0x0c34316a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndYGain9X0.u32All                 = 0x030c5aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndUVGain30.u32All                 = 0x0c34316a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndUVGain50.u32All                 = 0x0c34316a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.yDCIndUVGain5X0.u32All                = 0x0c34316a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterConfig.u32All                  = 0x00028383;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterDetailCond.u32All              = 0x00005a0a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cThreshold.u32All                     = 0x00000029;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyYDer.u32All                = 0x002d000a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyChromaticity.u32All        = 0x00201f60;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyLimits.u32All              = 0x00000040;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyBlendScale.u32All          = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyBlendOffset.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreySizeThr35.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreySizeThr79.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyThrClose.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterGreyThrFar.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterDCIndFlags.u32All              = 0x00004f3e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterDerFlags.u32All                = 0x00004f3e;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterDirConfig.u32All               = 0xffff0000;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterDirConfigEx.u32All             = 0x0000ff00;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYThrFarMod.u32All              = 0x0000004c;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVThrFarMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUThrDistMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVThrDisMod.u32All              = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYThrCloseMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterYThrFarExMod.u32All            = 0x00000008;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterUThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cFilterVThrFarExMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndYGain30.u32All                  = 0x002ed12a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndYGain50.u32All                  = 0x002ed12a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndYGain70.u32All                  = 0x00084aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndYGain90.u32All                  = 0x00084aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndYGain5X0.u32All                 = 0x002ed12a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndYGain9X0.u32All                 = 0x00084aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndUVGain30.u32All                 = 0x002ed12a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndUVGain50.u32All                 = 0x002ed12a;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndUVGain70.u32All                 = 0x00084aaa;
    m_regCmd[PASS_NAME_DC_4].cylpfPostLensGainCmd.cDCIndUVGain5X0.u32All                = 0x002ed12a;

    m_regCmd[PASS_NAME_DC_4].cnrCmd.bypass.u32All               = 0x00000001;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.config.u32All               = 0x00000023;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.debug.u32All                = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.filterMode.u32All           = 0x0000000f;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.specialParams.u32All        = 0x00700001;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.cMode.u32All                = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleMin0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleMin1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleMin2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleMax0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleMax1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleMax2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.angleInternal.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.colorSatMin0.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.colorSatMin1.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.colorSatMin2.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.colorSatMax0.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.colorSatMax1.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.colorSatMax2.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCompMin0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCompMin1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCompMax0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCompMax1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.boundaryProbability.u32All  = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.q0.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.q1.u32All                   = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorYY0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorYY1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorYY2.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorUVY0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorUVY1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorUVY2.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetYY0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetYY1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetYY2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetUY0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetUY1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetVY0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetVY1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorYC0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorYC1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorYC2.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorUVC0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorUVC1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.gainFactorUVC2.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetYC0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetYC1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetYC2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetUC0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetUC1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetVC0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.offsetVC1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.blendFactorYDC0.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.blendFactorYDC1.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.blendFactorYALT0.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.blendFactorYALT1.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.blendFactorC0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.blendFactorC1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.fdOffset.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.xCenter0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.xCenter1.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.xCenter2.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCenter0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCenter1.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.yCenter2.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rBoundary0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rBoundary1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rBoundary2.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rBoundaryShift0.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rSlope0.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rSlope1.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rSlope2.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.rSlopeShift0.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.combine0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_4].cnrCmd.fdConfig.u32All             = 0x0000000a;

    /// @todo (CAMX-666) replace #if DEBUG with set properties
#if DEBUG
    DumpRegConfig();
#endif // DEBUG

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::RunCalculationDS16Pass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::RunCalculationDS16Pass(
    ISPInputData* pInputData)
{
    CAMX_UNREFERENCED_PARAM(pInputData);
    CamxResult result = CamxResultSuccess;

    /// @todo (CAMX-729) Consume 3A updates and call common IQ library

    m_regCmd[PASS_NAME_DC_16].dcBlend1Cmd.bypass.u32All = 0x00000001;

    m_regCmd[PASS_NAME_DC_16].rnfCmd.bypass.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.subBypass.u32All           = 0x0000001b;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.debug.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.indRankConfigYCFG.u32All   = 0x00002126;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.indRankYHV.u32All          = 0x0002f854;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.indRankYDG.u32All          = 0x0002fa54;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.indRankCCFG.u32All         = 0x00001093;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.indRankCHV.u32All          = 0x000003c3;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.indRankCDG.u32All          = 0x000003c3;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakConfigY.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakConfigc.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakImgCondS0Y.u32All      = 0x00ff00ff;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakImgCondS1Y.u32All      = 0x0020ff00;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakImgCondS0C.u32All      = 0x00ff00ff;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakImgCondS1C.u32All      = 0x0020ff00;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakDCCondS0Y.u32All       = 0x00bc2bc2;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakDCCondS1Y.u32All       = 0x00c44c43;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakDCCondS0C.u32All       = 0x00002142;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakDCCondS1C.u32All       = 0x00002243;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakLumaIsoThr.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.peakChromaIsoThr.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firConfigY.u32All          = 0x00000020;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firConfigC.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firDirThrY.u32All          = 0x00a644db;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firDirThrC.u32All          = 0x0004c8db;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransY0.u32All          = 0x4920a09a;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransY1.u32All          = 0x00024d05;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransY2.u32All          = 0x6a625105;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransC0.u32All          = 0x4920a09a;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransC1.u32All          = 0x00024d05;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransC2.u32All          = 0x6a625105;
    m_regCmd[PASS_NAME_DC_16].rnfCmd.firTransC3.u32All          = 0x0003401a;

    m_regCmd[PASS_NAME_DC_16].dcusCmd.bypass.u32All = 0x00000001;

    m_regCmd[PASS_NAME_DC_16].filter2Cmd.byPass.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.debug.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.subBypass.u32All       = 0x0000001c;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.chromaFiltering.u32All = 0x00000006;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.chromaIndThr9.u32All   = 0x00000006;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.chromaIndThr11.u32All  = 0x00000006;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.greyIndThr9.u32All     = 0x00000014;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.greyIndThr11.u32All    = 0x00000028;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.chroma.u32All          = 0x00000006;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.medianThr.u32All       = 0x00024200;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.medianThrHV.u32All     = 0x00021125;
    m_regCmd[PASS_NAME_DC_16].filter2Cmd.medianThrDG12.u32All   = 0x00021125;

    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.lumaBypass.u32All     = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.chromaBypass.u32All   = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yDebug.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cDebug.u32All         = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.lumaConfig.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.chromaConfig.u32All   = 0x00000048;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend1X1.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend3X3.u32All      = 0x0d0d0d0d;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend5X5.u32All      = 0x26262626;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend7X7.u32All      = 0x4d4d4d4d;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend9X9.u32All      = 0x80808080;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend1X1Alt.u32All   = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend3X3Alt.u32All   = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend5X5Alt.u32All   = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend7X7Alt.u32All   = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.yBlend9X9Alt.u32All   = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cBlend1X1.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cBlend3X3.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cBlend5X5.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cBlend7X7.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cBlend9X9.u32All      = 0x00005555;
    m_regCmd[PASS_NAME_DC_16].dcBlend2Cmd.cblend11X11.u32All    = 0x00008080;

    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.bypass.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.subBypass.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.debug.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.config.u32All             = 0x00004004;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfConfig.u32All          = 0x0000000c;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfRadius.u32All          = 0x00001168;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfLowThrLUT0.u32All      = 0x00a01402;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfLowThrLUT1.u32All      = 0x0190500f;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfLowThrLUT2.u32All      = 0x02808c1e;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfHighThrLUT0.u32All     = 0x06e1a466;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfHighThrLUT1.u32All     = 0x07d1e073;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfHighThrLUT2.u32All     = 0x08c21c82;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfLowThrLimit.u32All     = 0x000003ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPreLensGainCmd.tcfHighThrLimit.u32All    = 0x000003ff;

    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY0.u32All = 0x00890085;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY1.u32All = 0x0094008e;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY2.u32All = 0x009e0099;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY3.u32All = 0x00a900a4;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY4.u32All = 0x00b600af;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY5.u32All = 0x00c500bd;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY6.u32All = 0x00d900ce;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY7.u32All = 0x00e900e2;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrY8.u32All = 0x000000f0;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC0.u32All = 0x00890085;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC1.u32All = 0x0095008f;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC2.u32All = 0x00a4009d;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC3.u32All = 0x00b300ab;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC4.u32All = 0x00c300bb;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC5.u32All = 0x00d500cc;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC6.u32All = 0x00ea00df;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC7.u32All = 0x00fb00f4;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgYFilterLUTThrC8.u32All = 0x00000101;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY0.u32All = 0x00890085;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY1.u32All = 0x0095008f;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY2.u32All = 0x00a4009d;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY3.u32All = 0x00b300ab;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY4.u32All = 0x00c300bb;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY5.u32All = 0x00d500cc;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY6.u32All = 0x00ea00df;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY7.u32All = 0x00fb00f4;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrY8.u32All = 0x00000101;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC0.u32All = 0x00890085;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC1.u32All = 0x0095008f;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC2.u32All = 0x00a4009d;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC3.u32All = 0x00b300ab;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC4.u32All = 0x00c300bb;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC5.u32All = 0x00d500cc;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC6.u32All = 0x00ea00df;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC7.u32All = 0x00fb00f4;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgCFilterLUTThrC8.u32All = 0x00000101;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend0.u32All       = 0x7e7e7f80;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend1.u32All       = 0x7a7b7c7d;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend2.u32All       = 0x75767879;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend3.u32All       = 0x71737475;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend4.u32All       = 0x6e6f7071;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend5.u32All       = 0x6b6c6d6d;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend6.u32All       = 0x68696a6a;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend7.u32All       = 0x67676868;
    m_regCmd[PASS_NAME_DC_16].cylpfLensGainCmd.lgLUTBlend8.u32All       = 0x00000067;

    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUVLmit.u32All                 = 0x0000007f;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterBaseBlendFarY.u32All          = 0x00000004;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterBaseBlendFarC.u32All          = 0x00000004;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYYTB0.u32All                  = 0x00200802;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYYTB1.u32All                  = 0x00200802;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYYTB2.u32All                  = 0x00200802;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYYTB3.u32All                  = 0x00200802;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYYTB4.u32All                  = 0x00200802;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYYTB5.u32All                  = 0x00000802;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYCTB0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYCTB1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYCTB2.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYCTB3.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYTBLimit.u32All               = 0x000003ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUYTB0.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUYTB1.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUYTB2.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUYTB3.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUYTB4.u32All                  = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUCTB0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUCTB1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUCTB2.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUTBLimit.u32All               = 0x000000ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVYTB0.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVYTB1.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVYTB2.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVYTB3.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVYTB4.u32All                  = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVCTB0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVCTB1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVCTB2.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVTBLimit.u32All               = 0x000000ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUVLimit.u32All                = 0x0000007f;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterBaseBlendFarY.u32All          = 0x00000004;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterBaseBlendFarC.u32All          = 0x00000004;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYYTB0.u32All                  = 0x00100401;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYYTB1.u32All                  = 0x00100401;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYYTB2.u32All                  = 0x00100401;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYYTB3.u32All                  = 0x00100401;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYYTB4.u32All                  = 0x00100401;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYYTB5.u32All                  = 0x00000401;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYCTB0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYCTB1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYCTB2.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYCTB3.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYTBLimit.u32All               = 0x000003ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUYTB0.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUYTB1.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUYTB2.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUYTB3.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUYTB4.u32All                  = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUCTB0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUCTB1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUCTB2.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUTBLimit.u32All               = 0x000000ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVYTB0.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVYTB1.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVYTB2.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVYTB3.u32All                  = 0x01010101;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVYTB4.u32All                  = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVCTB0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVCTB1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVCTB2.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVTBLimit.u32All               = 0x000000ff;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterConfig.u32All                 = 0x0000800c;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterKernel.u32All                 = 0x02355490;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterAltKernel.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterDCIndFlags.u32All             = 0x00934f3e;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterDerFlags.u32All               = 0x00934f3e;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterDer2Flags.u32All              = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterDirConfig.u32All              = 0xffff0000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterExternalDirConfig.u32All      = 0x0000ff00;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYThrehClose3Mod.u32All        = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYThreshDer2Close3Mod.u32All   = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYThrFarMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUThrFarMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVThrFarMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYThrCloseMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterYThrFarExMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterUThrFarExMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yFilterVThrFarExMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndYGain30.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndYGain50.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndYGain70.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndYGain90.u32All                 = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndYGain5X0.u32All                = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndYGain9X0.u32All                = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndUVGain30.u32All                = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndUVGain50.u32All                = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.yDCIndUVGain5X0.u32All               = 0x2aaaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterConfig.u32All                 = 0x00028383;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterDetailCond.u32All             = 0x0000ff00;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cThreshold.u32All                    = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyYDer.u32All               = 0x007f0100;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyChromaticity.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyLimits.u32All             = 0x00000040;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyBlendScale.u32All         = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyBlendOffset.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreySizeThr35.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreySizeThr79.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyThrClose.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterGreyThrFar.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterDCIndFlags.u32All             = 0x00004f3e;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterDerFlags.u32All               = 0x00004f3e;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterDirConfig.u32All              = 0xffff0000;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterDirConfigEx.u32All            = 0x0000ff00;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYThrFarMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUThrFarMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVThrFarMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUThrDistMod.u32All            = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVThrDisMod.u32All             = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYThrCloseMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterYThrFarExMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterUThrFarExMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cFilterVThrFarExMod.u32All           = 0x00000010;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndYGain30.u32All                 = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndYGain50.u32All                 = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndYGain70.u32All                 = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndYGain90.u32All                 = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndYGain5X0.u32All                = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndYGain9X0.u32All                = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndUVGain30.u32All                = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndUVGain50.u32All                = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndUVGain70.u32All                = 0x00aaaaaa;
    m_regCmd[PASS_NAME_DC_16].cylpfPostLensGainCmd.cDCIndUVGain5X0.u32All               = 0x00aaaaaa;

    m_regCmd[PASS_NAME_DC_16].cnrCmd.bypass.u32All              = 0x00000001;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.config.u32All              = 0x00000032;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.debug.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.filterMode.u32All          = 0x0000000f;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.specialParams.u32All       = 0x00700000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.cMode.u32All               = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleMin0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleMin1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleMin2.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleMax0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleMax1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleMax2.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.angleInternal.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.colorSatMin0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.colorSatMin1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.colorSatMin2.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.colorSatMax0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.colorSatMax1.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.colorSatMax2.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCompMin0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCompMin1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCompMax0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCompMax1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.boundaryProbability.u32All = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.q0.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.q1.u32All                  = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorYY0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorYY1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorYY2.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorUVY0.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorUVY1.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorUVY2.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetYY0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetYY1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetYY2.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetUY0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetUY1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetVY0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetVY1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorYC0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorYC1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorYC2.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorUVC0.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorUVC1.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.gainFactorUVC2.u32All      = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetYC0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetYC1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetYC2.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetUC0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetUC1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetVC0.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.offsetVC1.u32All           = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.blendFactorYDC0.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.blendFactorYDC1.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.blendFactorYALT0.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.blendFactorYALT1.u32All    = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.blendFactorC0.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.blendFactorC1.u32All       = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.fdOffset.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.xCenter0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.xCenter1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.xCenter2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCenter0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCenter1.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.yCenter2.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rBoundary0.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rBoundary1.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rBoundary2.u32All          = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rBoundaryShift0.u32All     = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rSlope0.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rSlope1.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rSlope2.u32All             = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.rSlopeShift0.u32All        = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.combine0.u32All            = 0x00000000;
    m_regCmd[PASS_NAME_DC_16].cnrCmd.fdConfig.u32All            = 0x0000000a;

    /// @todo (CAMX-666) replace #if DEBUG with set properties
#if DEBUG
    DumpRegConfig();
#endif // DEBUG

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::Execute
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::Execute(
    ISPInputData* pInputData)
{
    CamxResult result = CamxResultSuccess;

    if (NULL != pInputData)
    {
        // Check if dependent is valid and been updated compared to last request
        result = ValidateDependenceParams(pInputData);

        if ((CamxResultSuccess == result) && ((TRUE == m_moduleEnable) ||
            (TRUE == pInputData->tuningModeChanged)))
        {
            if (TRUE == CheckDependenceChange(pInputData))
            {
                result = RunCalculation(pInputData);
            }

            if ((CamxResultSuccess == result) && (TRUE == m_moduleEnable))
            {
                result = CreateCmdList(pInputData);
            }

            if (CamxResultSuccess == result)
            {
                result = UpdateIPEInternalData(pInputData);
            }

            if (CamxResultSuccess != result)
            {
                CAMX_ASSERT_ALWAYS_MESSAGE("Operation failed %d", result);
            }

        }
    }
    else
    {
        result = CamxResultEInvalidArg;
        CAMX_ASSERT_ALWAYS_MESSAGE("Null Input Pointer");
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// IPEANR10::GetModuleData
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
VOID IPEANR10::GetModuleData(
    VOID* pModuleData)

{
    CAMX_ASSERT(NULL != pModuleData);
    IPEIQModuleData* pData = reinterpret_cast<IPEIQModuleData*>(pModuleData);

    // data is expected to be filled after execute
    pData->singlePassCmdLength = m_singlePassCmdLength;
    Utils::Memcpy(pData->offsetPass, m_offsetPass, sizeof(pData->offsetPass));
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::AllocateCommonLibraryData
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CamxResult IPEANR10::AllocateCommonLibraryData()
{
    CamxResult result = CamxResultSuccess;

    // Add 1 for ouput of interpolation library
    UINT interpolationSize = (sizeof(anr_1_0_0::mod_anr10_cct_dataType::cct_dataStruct) * (ANRMaxNonLeafNode + 1));
    if (NULL == m_dependenceData.pInterpolationData)
    {
        m_dependenceData.pInterpolationData = CAMX_CALLOC(interpolationSize);
        if (NULL == m_dependenceData.pInterpolationData)
        {
            result = CamxResultENoMemory;
        }
    }

    if ((NULL == m_dependenceData.pUnpackedfield) && (CamxResultSuccess == result))
    {
        m_dependenceData.pUnpackedfield = CAMX_CALLOC(ANRUNPACKSIZE);
        if (NULL == m_dependenceData.pUnpackedfield)
        {
            result = CamxResultENoMemory;
        }
    }

    if ((NULL == m_dependenceData.pNCChromatix) && (CamxResultSuccess == result))
    {
        m_dependenceData.pNCChromatix = CAMX_CALLOC(ANRCHROMATIX);
        if (NULL == m_dependenceData.pNCChromatix)
        {
            result = CamxResultENoMemory;
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::DeallocateCommonLibraryData
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
VOID IPEANR10::DeallocateCommonLibraryData()
{
    if (NULL != m_dependenceData.pInterpolationData)
    {
        CAMX_FREE(m_dependenceData.pInterpolationData);
        m_dependenceData.pInterpolationData = NULL;
    }

    if (NULL != m_dependenceData.pUnpackedfield)
    {
        CAMX_FREE(m_dependenceData.pUnpackedfield);
        m_dependenceData.pUnpackedfield = NULL;
    }

    if (NULL != m_dependenceData.pNCChromatix)
    {
        CAMX_FREE(m_dependenceData.pNCChromatix);
        m_dependenceData.pNCChromatix = NULL;
    }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IPEANR10::IPEANR10
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IPEANR10::IPEANR10(
    IPEModuleCreateData* pCreateData)
{
    Titan17xContext* pContext = NULL;

    m_type                = ISPIQModuleType::IPEANR;
    m_moduleEnable        = TRUE;
    m_32bitDMILength      = 0;
    m_64bitDMILength      = 0;
    m_IPEANRCmdBufferSize = (sizeof(IPEANRDCBlend1RegCmd)         +
                            sizeof(IPEANRRNFRegCmd)               +
                            sizeof(IPEANRDCUSRegCmd)              +
                            sizeof(IPEANRCFilter2RegCmd)          +
                            sizeof(IPEANRDCBlend2RegCmd)          +
                            sizeof(IPEANRCYLPFPreLensGainRegCmd)  +
                            sizeof(IPEANRCYLPFLensGainRegCmd)     +
                            sizeof(IPEANRCYLPFPostLensGainRegCmd) +
                            sizeof(IPEANRCNRRegCmd)               +
                            (IPEANRNumRegWriteCmds * (cdm_get_cmd_header_size(CDMCmdRegContinuous) * 4)));
    m_cmdLength           = m_IPEANRCmdBufferSize * PASS_NAME_MAX;
    m_singlePassCmdLength = m_IPEANRCmdBufferSize;

    Utils::Memset(&m_dependenceData, 0x0, sizeof(m_dependenceData));
    Utils::Memset(&m_ANRParameter,   0x0, sizeof(m_ANRParameter));

    m_pChromatix     = NULL;
    pContext         = static_cast<Titan17xContext*>(pCreateData->initializationData.pHwContext);
    m_enableCommonIQ = pContext->GetTitan17xSettingsManager()->GetTitan17xStaticSettings()->enableANRCommonIQModule;

    CAMX_LOG_INFO(CamxLogGroupIQMod,
        "IPE ANR m_cmdLength %d , m_EnableCommonIQ %d",
        m_cmdLength,
        m_enableCommonIQ);
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// IPEANR10::~IPEANR10
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IPEANR10::~IPEANR10()
{
    DeallocateCommonLibraryData();
    m_pChromatix = NULL;
}

CAMX_NAMESPACE_END
